home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_jvm27.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  48.0 KB  |  1,763 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. void r31make(T31* C,T0* a1,T0* a2){
  10. T0* _an2=NULL;
  11. int _rank=0;
  12. int _i=0;
  13. T0* _tla2=NULL;
  14. T0* _tla=NULL;
  15. T0* _tlf=NULL;
  16. T0* _an=NULL;
  17. r31standard_make(C,a1,a2);
  18. _i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
  19. while (!((_i)==(0))) {
  20. _an=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
  21. _tlf=(((T873*)((T873*)_an)))->_result_type/*24*/;
  22. if(NULL!=(_tlf))switch(((T0*)_tlf)->id) {
  23. case 648: 
  24. break;
  25. default:
  26. _tlf=NULL;
  27. };/*IF*/if ((_tlf)!=((void*)(NULL))) {
  28. _rank=r31rank_of(C,X776to_string((((T648*)((T648*)_tlf)))->_like_what/*12*/));
  29. /*IF*/if ((_rank)==(_i)) {
  30. r683add_position((((T648*)((T648*)_tlf)))->_start_position/*4*/);
  31. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
  32. r683fatal_error(((T683*)(oBC364eh)),b1);
  33. }/*]*/
  34. }
  35.  else if ((_rank)>(0)) {
  36. {T886*n=malloc(sizeof(*n));
  37. *n=M886;
  38. r886refer_to(n,X776start_position((((T648*)((T648*)_tlf)))->_like_what/*12*/),(T0*)C,_rank);
  39. _an2=(T0*)n;
  40. }
  41. {T239*n=malloc(sizeof(*n));
  42. *n=M239;
  43. r239make(n,(((T648*)((T648*)_tlf)))->_start_position/*4*/,_an2);
  44. _tla=(T0*)n;
  45. }
  46. /*[IRF3.3set_result_type*/((((T873*)(((T873*)_an))))->_result_type)=(_tla);
  47. /*]*/
  48. }
  49. /*FI*/}
  50. /*FI*/_i=(_i)-(1);
  51. }
  52. /*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
  53. _i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
  54. while (!((_i)==(0))) {
  55. _tla=(((T873*)((T873*)(r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i)))))->_result_type/*24*/;
  56. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  57. case 239: 
  58. break;
  59. default:
  60. _tla=NULL;
  61. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  62. _rank=r31rank_of(C,(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_to_string/*12*/);
  63. _tla2=(((T873*)((T873*)(r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_rank)))))->_result_type/*24*/;
  64. if(NULL!=(_tla2))switch(((T0*)_tla2)->id) {
  65. case 239: 
  66. break;
  67. default:
  68. _tla2=NULL;
  69. };/*IF*/if ((_tla2)!=((void*)(NULL))) {
  70. r683add_position((((T239*)((T239*)_tla)))->_start_position/*4*/);
  71. r683add_position((((T239*)((T239*)_tla2)))->_start_position/*4*/);
  72. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms64_470);
  73. r683fatal_error(((T683*)(oBC364eh)),b1);
  74. }/*]*/
  75. }
  76. /*FI*/}
  77. /*FI*/_i=(_i)-(1);
  78. }
  79. }
  80. /*FI*/}
  81. /*No:FORMAL_ARG_LIST.name*/
  82. T0* r31jvm_root_class(void){
  83. if (fBC364jvm_root_class==0){
  84. T0* R=NULL;
  85. fBC364jvm_root_class=1;
  86. {T7*n=malloc(sizeof(*n));
  87. *n=M7;
  88. r7make(n,12);
  89. R=(T0*)n;
  90. }
  91. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  92. r7extend(((T7*)R),'\57');
  93. r7append(((T7*)R),((T0*)ms112_470));
  94. oBC364jvm_root_class=R;}
  95. return oBC364jvm_root_class;}
  96. /*No:FORMAL_ARG_LIST.nb_errors*/
  97. T0* r31type(T31* C,int a1){
  98. T0* R=NULL;
  99. R=(((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),a1)/*)*/))))->_result_type/*24*/;
  100. return R;
  101. }
  102. void r31standard_make(T31* C,T0* a1,T0* a2){
  103. int _actual_count=0;
  104. int _il=0;
  105. C->_start_position=a1;
  106. C->_list=a2;
  107. _il=1;
  108. while (!((_il)>((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/))) {
  109. _actual_count=(_actual_count)+(X411count(r382item(((T382*)((((T31*)C))->_list/*8*/)),_il)));
  110. _il=(_il)+(1);
  111. }
  112. {T65*n=malloc(sizeof(*n));
  113. *n=M65;
  114. r65make(n,1,_actual_count);
  115. C->_flat_list=(T0*)n;
  116. }
  117. _il=1;
  118. while (!((_il)>((((T382*)((T382*)((((T31*)C))->_list/*8*/))))->_upper/*8*/))) {
  119. X411append_in(r382item(((T382*)((((T31*)C))->_list/*8*/)),_il),(T0*)C);
  120. _il=(_il)+(1);
  121. }
  122. }
  123. int r31jvm_offset_of(T31* C,T0* a1){
  124. int R=0;
  125. int _rank=0;
  126. int _i=0;
  127. _rank=/*X361*/((int)(((T886*)((T886*)a1)))->_rank/*20*/);
  128. _i=1;
  129. while (!((_i)==(_rank))) {
  130. R=(R)+(X291jvm_stack_space(X291run_type(r31type(C,_i))));
  131. _i=(_i)+(1);
  132. }
  133. return R;
  134. }
  135. void r31jvm_descriptor_in(T31* C,T0* a1){
  136. T0* _at=NULL;
  137. int _i=0;
  138. _i=1;
  139. while (!((_i)>(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/))) {
  140. _at=X291run_type(r31type(C,_i));
  141. /*IF*/if (X291is_reference(_at)) {
  142. r7append(((T7*)a1),r31jvm_root_descriptor());
  143. }
  144. else {
  145. X291jvm_descriptor_in(_at,a1);
  146. }
  147. /*FI*/_i=(_i)+(1);
  148. }
  149. }
  150. /*No:FORMAL_ARG_LIST.start_position*/
  151. T0* r31to_runnable(T31* C,T0* a1){
  152. T0* R=NULL;
  153. T0* _n2=NULL;
  154. T0* _n1=NULL;
  155. int _i=0;
  156. /*IF*/if (((((T31*)C))->_current_type/*16*/)==((void*)(NULL))) {
  157. C->_current_type=a1;
  158. R=(T0*)C;
  159. _i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
  160. while (!(((_i)==(0))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  161. _n1=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
  162. _n2=r873to_runnable(((T873*)_n1),a1);
  163. /*IF*/if ((_n2)==((void*)(NULL))) {
  164. r31error((((T873*)((T873*)_n1)))->_start_position/*16*/,((T0*)ms3_535));
  165. }
  166.  else if ((_n1)!=((void*)(_n2))) {
  167. /*[IRF3.6put*/{T65* C1=((T65*)((((T31*)C))->_flat_list/*12*/));
  168. T0* b1=_n2;
  169. int b2=_i;
  170. ((((T65*)C1))->_storage/*4*/)[(b2)-((((T65*)C1))->_lower/*16*/)]=(b1);
  171. }/*]*/
  172. }
  173. /*FI*/r873name_clash(((T873*)_n2));
  174. _i=(_i)-(1);
  175. }
  176. }
  177. else {
  178. {T31*n=malloc(sizeof(*n));
  179. *n=M31;
  180. r31runnable_from_current(n,(T0*)C,a1);
  181. R=(T0*)n;
  182. }
  183. }
  184. /*FI*/return R;
  185. }
  186. int r31jvm_switch_push_ith(T31* C,T0* a1,int a2){
  187. int R=0;
  188. int _offset=0;
  189. T0* _t2=NULL;
  190. T0* _t1=NULL;
  191. _offset=r228argument_offset_of(((T228*)(oBC364jvm)),/*(IRF4.6name*/r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),a2)/*)*/);
  192. _t1=X291run_type(r31type(C,a2));
  193. _t2=X291run_type(r31type(((T31*)a1),a2));
  194. X291jvm_push_local(_t1,_offset);
  195. R=X291jvm_convert_to(_t1,_t2);
  196. return R;
  197. }
  198. int r31jvm_switch_push(T31* C,T0* a1){
  199. int R=0;
  200. int _i=0;
  201. _i=1;
  202. while (!((_i)>(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/))) {
  203. R=(R)+(r31jvm_switch_push_ith(C,a1,_i));
  204. _i=(_i)+(1);
  205. }
  206. return R;
  207. }
  208. /*No:FORMAL_ARG_LIST.em1*/
  209. T0* r31jvm_root_descriptor(void){
  210. if (fBC364jvm_root_descriptor==0){
  211. T0* R=NULL;
  212. fBC364jvm_root_descriptor=1;
  213. {T7*n=malloc(sizeof(*n));
  214. *n=M7;
  215. r7make(n,12);
  216. R=(T0*)n;
  217. }
  218. r7extend(((T7*)R),'L');
  219. r7append(((T7*)R),r31jvm_root_class());
  220. r7extend(((T7*)R),'\73');
  221. oBC364jvm_root_descriptor=R;}
  222. return oBC364jvm_root_descriptor;}
  223. /*No:FORMAL_ARG_LIST.list*/
  224. int r31rank_of(T31* C,T0* a1){
  225. int R=0;
  226. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  227. while (!(((R)==(0))||((a1)==((void*)((((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),R)/*)*/))))->_to_string/*12*/))))) {
  228. R=(R)-(1);
  229. }
  230. return R;
  231. }
  232. int r31jvm_stack_space(T31* C){
  233. int R=0;
  234. int _i=0;
  235. _i=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  236. while (!((_i)==(0))) {
  237. R=(R)+(X291jvm_stack_space(X291run_type(r31type(C,_i))));
  238. _i=(_i)-(1);
  239. }
  240. return R;
  241. }
  242. /*No:FORMAL_ARG_LIST.current_type*/
  243. int r31is_a_in(T31* C,T0* a1,T0* a2){
  244. int R=0;
  245. T0* _t2=NULL;
  246. T0* _t1=NULL;
  247. int _i=0;
  248. /*IF*/if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)a1)))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  249. r683add_position((((T31*)((T31*)a1)))->_start_position/*4*/);
  250. r31error((((T31*)C))->_start_position/*4*/,((T0*)ms8_31));
  251. }
  252. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  253. R=1;
  254. _i=1;
  255. while (!((!(R))||((_i)>((((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/)))) {
  256. _t1=r31type(C,_i);
  257. _t2=r31type(((T31*)a1),_i);
  258. /*IF*/if (!(X291is_a_in(_t1,_t2,a2))) {
  259. R=0;
  260. r683print_as_error(((T683*)(oBC364eh)));
  261. r683add_position(X291start_position(_t1));
  262. r683add_position(X291start_position(_t2));
  263. /*[IRF3.6append*/{T0* b1=((T0*)ms9_31);
  264. r7append(((T7*)(oBC683explanation)),b1);
  265. }/*]*/
  266. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  267. r7append(((T7*)(oBC683explanation)),b1);
  268. }/*]*/
  269. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  270. }
  271. /*FI*/_i=(_i)+(1);
  272. }
  273. }
  274. /*FI*/return R;
  275. }
  276. /*No:FORMAL_ARG_LIST.fz_cad*/
  277. /*No:FORMAL_ARG_LIST.fz_jvm_root*/
  278. /*No:FORMAL_ARG_LIST.fz_dot*/
  279. void r31runnable_from_current(T31* C,T0* a1,T0* a2){
  280. T0* _n2=NULL;
  281. T0* _n1=NULL;
  282. int _i=0;
  283. C->_start_position=(((T31*)((T31*)a1)))->_start_position/*4*/;
  284. C->_list=(((T31*)((T31*)a1)))->_list/*8*/;
  285. C->_current_type=a2;
  286. C->_flat_list=r65twin(((T65*)((((T31*)((T31*)a1)))->_flat_list/*12*/)));
  287. _i=(((T65*)((T65*)((((T31*)C))->_flat_list/*12*/))))->_upper/*12*/;
  288. while (!((_i)==(0))) {
  289. _n1=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
  290. _n2=r873to_runnable(((T873*)_n1),a2);
  291. /*IF*/if ((_n2)==((void*)(NULL))) {
  292. r31error((((T873*)((T873*)_n1)))->_start_position/*16*/,((T0*)ms3_535));
  293. }
  294. /*FI*//*[IRF3.6put*/{T65* C1=((T65*)((((T31*)C))->_flat_list/*12*/));
  295. T0* b1=_n2;
  296. int b2=_i;
  297. ((((T65*)C1))->_storage/*4*/)[(b2)-((((T65*)C1))->_lower/*16*/)]=(b1);
  298. }/*]*/
  299. _i=(_i)-(1);
  300. }
  301. }
  302. void r31add_last(T31* C,T0* a1){
  303. T0* _n2=NULL;
  304. int _i=0;
  305. _i=1;
  306. while (!((r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i))==((void*)(NULL)))) {
  307. _n2=r65item(((T65*)((((T31*)C))->_flat_list/*12*/)),_i);
  308. /*IF*/if (((((T873*)((T873*)_n2)))->_to_string/*12*/)==((void*)((((T873*)((T873*)a1)))->_to_string/*12*/))) {
  309. r683add_position((((T873*)((T873*)a1)))->_start_position/*16*/);
  310. r683add_position((((T873*)((T873*)_n2)))->_start_position/*16*/);
  311. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_535);
  312. r683fatal_error(((T683*)(oBC364eh)),b1);
  313. }/*]*/
  314. }
  315. /*FI*/_i=(_i)+(1);
  316. }
  317. /*[IRF3.6put*/{T65* C1=((T65*)((((T31*)C))->_flat_list/*12*/));
  318. T0* b1=a1;
  319. int b2=_i;
  320. ((((T65*)C1))->_storage/*4*/)[(b2)-((((T65*)C1))->_lower/*16*/)]=(b1);
  321. }/*]*/
  322. /*[IRF3.3set_rank*/((((T873*)(((T873*)a1))))->_rank)=(_i);
  323. /*]*/
  324. }
  325. void r31error(T0* a1,T0* a2){
  326. r683add_position(a1);
  327. r683error(((T683*)(oBC364eh)),a2);
  328. }
  329. /*No:FORMAL_ARG_LIST.count*/
  330. /*No:FORMAL_ARG_LIST.fatal_error*/
  331. /*No:FORMAL_ARG_LIST.flat_list*/
  332. int r33gives_permission_to_any(T33* C){
  333. int R=0;
  334. int _i=0;
  335. _i=(((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/;
  336. while (!((R)||((_i)==(0)))) {
  337. R=((((T451*)((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),_i)))))->_to_string/*0*/)==((void*)(((T0*)ms1_473)));
  338. _i=(_i)-(1);
  339. }
  340. return R;
  341. }
  342. void r33merge(T33* C,T0* a1,T0* a2){
  343. T0* _a=NULL;
  344. T0* _cn=NULL;
  345. int _i=0;
  346. C->_list=r901twin(((T901*)((((T33*)((T33*)a1)))->_list/*0*/)));
  347. _a=(((T33*)((T33*)a2)))->_list/*0*/;
  348. _i=(((T901*)((T901*)_a)))->_upper/*8*/;
  349. while (!((_i)==(0))) {
  350. _cn=r901item(((T901*)_a),_i);
  351. /*IF*/if (!(r33gives_permission_to(C,_cn))) {
  352. r901add_last(((T901*)((((T33*)C))->_list/*0*/)),_cn);
  353. }
  354. /*FI*/_i=(_i)-(1);
  355. }
  356. }
  357. void r33make(T33* C,T0* a1){
  358. int _i2=0;
  359. int _i=0;
  360. C->_list=a1;
  361. _i=(((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/;
  362. while (!((_i)==(0))) {
  363. _i2=r33index_of(C,r901item(((T901*)((((T33*)C))->_list/*0*/)),_i));
  364. /*IF*/if ((_i2)!=(_i)) {
  365. r683add_position((((T451*)((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),_i2)))))->_start_position/*4*/);
  366. r33warning((((T451*)((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),_i)))))->_start_position/*4*/,((T0*)ms1_33));
  367. }
  368. /*FI*/_i=(_i)-(1);
  369. }
  370. }
  371. int r33gives_permission_to(T33* C,T0* a1){
  372. int R=0;
  373. int _i=0;
  374. /*IF*/if ((r33index_of(C,a1))>(0)) {
  375. R=1;
  376. }
  377. else {
  378. _i=(((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/;
  379. while (!((R)||((_i)==(0)))) {
  380. R=r451is_subclass_of(((T451*)a1),r901item(((T901*)((((T33*)C))->_list/*0*/)),_i));
  381. _i=(_i)-(1);
  382. }
  383. }
  384. /*FI*/return R;
  385. }
  386. /*No:CLASS_NAME_LIST.list*/
  387. int r33index_of(T33* C,T0* a1){
  388. int R=0;
  389. T0* _to_string=NULL;
  390. _to_string=(((T451*)((T451*)a1)))->_to_string/*0*/;
  391. R=(((T901*)((T901*)((((T33*)C))->_list/*0*/))))->_upper/*8*/;
  392. while (!(((R)==(0))||((_to_string)==((void*)((((T451*)((T451*)(r901item(((T901*)((((T33*)C))->_list/*0*/)),R)))))->_to_string/*0*/))))) {
  393. R=(R)-(1);
  394. }
  395. return R;
  396. }
  397. /*No:CLASS_NAME_LIST.us_any*/
  398. void r33warning(T0* a1,T0* a2){
  399. r683add_position(a1);
  400. r683warning(((T683*)(oBC364eh)),a2);
  401. }
  402. int r963id(T963* C){
  403. int R=0;
  404. R=(((T355*)((T355*)(r963run_class(C)))))->_id/*4*/;
  405. return R;
  406. }
  407. /*No:TYPE_BIT_REF.jvm_target_descriptor_in*/
  408. /*No:TYPE_BIT_REF.jvm_if_x_eq*/
  409. /*No:TYPE_BIT_REF.has_creation*/
  410. /*No:TYPE_BIT_REF.is_anchored*/
  411. /*No:TYPE_BIT_REF.is_array*/
  412. int r963is_a(T963* C,T0* a1){
  413. int R=0;
  414. /*IF*/if (((((T963*)C))->_run_time_mark/*12*/)==((void*)(X291run_time_mark(a1)))) {
  415. R=1;
  416. }
  417. else {
  418. R=r605is_subclass_of(((T605*)(r963base_class(C))),X291base_class(a1));
  419. /*IF*/if (!(R)) {
  420. r683add_type((T0*)C,((T0*)ms71_470));
  421. r683add_type(a1,((T0*)ms67_470));
  422. }
  423. /*FI*/}
  424. /*FI*/return R;
  425. }
  426. /*No:TYPE_BIT_REF.jvm_to_reference*/
  427. /*No:TYPE_BIT_REF.is_pointer*/
  428. /*No:TYPE_BIT_REF.run_type*/
  429. /*No:TYPE_BIT_REF.is_dummy_expanded*/
  430. /*No:TYPE_BIT_REF.jvm_push_default*/
  431. /*No:TYPE_BIT_REF.is_string*/
  432. /*No:TYPE_BIT_REF.is_like_feature*/
  433. /*No:TYPE_BIT_REF.is_like_current*/
  434. void r963make(T963* C,T0* a1){
  435. C->_type_bit=a1;
  436. C->_run_time_mark=((T0*)ms1_963);
  437. r2append_in(X609nb((((T963*)C))->_type_bit/*4*/),(((T963*)C))->_run_time_mark/*12*/);
  438. r7append(((T7*)((((T963*)C))->_run_time_mark/*12*/)),((T0*)ms2_963));
  439. C->_run_time_mark=r902item((((T963*)C))->_run_time_mark/*12*/);
  440. C->_written_mark=(((T963*)C))->_run_time_mark/*12*/;
  441. }
  442. T0* r963jvm_root_class(void){
  443. if (fBC364jvm_root_class==0){
  444. T0* R=NULL;
  445. fBC364jvm_root_class=1;
  446. {T7*n=malloc(sizeof(*n));
  447. *n=M7;
  448. r7make(n,12);
  449. R=(T0*)n;
  450. }
  451. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  452. r7extend(((T7*)R),'\57');
  453. r7append(((T7*)R),((T0*)ms112_470));
  454. oBC364jvm_root_class=R;}
  455. return oBC364jvm_root_class;}
  456. T0* r963type_any(void){
  457. if (fBC364type_any==0){
  458. T0* R=NULL;
  459. fBC364type_any=1;
  460. {T669*n=malloc(sizeof(*n));
  461. *n=M669;
  462. r669make(n,NULL);
  463. R=(T0*)n;
  464. }
  465. oBC364type_any=R;}
  466. return oBC364type_any;}
  467. /*No:TYPE_BIT_REF.jvm_return_code*/
  468. /*No:TYPE_BIT_REF.jvm_xnewarray*/
  469. /*No:TYPE_BIT_REF.jvm_descriptor_in*/
  470. /*No:TYPE_BIT_REF.start_position*/
  471. /*No:TYPE_BIT_REF.fz_inako*/
  472. /*No:TYPE_BIT_REF.is_user_expanded*/
  473. /*No:TYPE_BIT_REF.is_character*/
  474. /*No:TYPE_BIT_REF.written_mark*/
  475. /*No:TYPE_BIT_REF.is_run_type*/
  476. /*No:TYPE_BIT_REF.to_runnable*/
  477. /*No:TYPE_BIT_REF.is_formal_generic*/
  478. T0* r963generic_list(T963* C){
  479. T0* R=NULL;
  480. r963fatal_error_generic_list(C);
  481. return R;
  482. }
  483. /*No:TYPE_BIT_REF.is_real*/
  484. /*No:TYPE_BIT_REF.is_bit*/
  485. void r963fatal_error_generic_list(T963* C){
  486. r683add_type((T0*)C,((T0*)ms12_291));
  487. r683print_as_fatal_error(((T683*)(oBC364eh)));
  488. }
  489. /*No:TYPE_BIT_REF.jvm_check_class_invariant*/
  490. T0* r963jvm_root_descriptor(void){
  491. if (fBC364jvm_root_descriptor==0){
  492. T0* R=NULL;
  493. fBC364jvm_root_descriptor=1;
  494. {T7*n=malloc(sizeof(*n));
  495. *n=M7;
  496. r7make(n,12);
  497. R=(T0*)n;
  498. }
  499. r7extend(((T7*)R),'L');
  500. r7append(((T7*)R),r963jvm_root_class());
  501. r7extend(((T7*)R),'\73');
  502. oBC364jvm_root_descriptor=R;}
  503. return oBC364jvm_root_descriptor;}
  504. /*No:TYPE_BIT_REF.jvm_xaload*/
  505. T0* r963smallest_ancestor(T963* C,T0* a1){
  506. T0* R=NULL;
  507. /*IF*/if (((((T963*)C))->_run_time_mark/*12*/)==((void*)(X291run_time_mark(a1)))) {
  508. R=(T0*)C;
  509. }
  510. else {
  511. R=r963type_any();
  512. }
  513. /*FI*/return R;
  514. }
  515. /*No:TYPE_BIT_REF.jvm_to_expanded*/
  516. /*No:TYPE_BIT_REF.is_boolean*/
  517. /*No:TYPE_BIT_REF.is_double*/
  518. int r963jvm_stack_space(void){
  519. int R=0;
  520. /*IF*//*AF*//*AE*/
  521. R=1;
  522. /*FI*/return R;
  523. }
  524. T0* r963run_class(T963* C){
  525. T0* R=NULL;
  526. R=r604run_class(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
  527. return R;
  528. }
  529. /*No:TYPE_BIT_REF.run_time_mark*/
  530. int r963is_a_in(T963* C,T0* a1,T0* a2){
  531. int R=0;
  532. T0* _ct=NULL;
  533. T0* _t2=NULL;
  534. T0* _t1=NULL;
  535. /*IF*/if (((((T963*)C))->_written_mark/*8*/)==((void*)(X291written_mark(a1)))) {
  536. R=1;
  537. }
  538. else {
  539. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  540. _t1=/*(IRF4.4to_runnable*/((T0*)(C))/*)*/;
  541. _t2=X291to_runnable(a1,_ct);
  542. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  543. R=1;
  544. }
  545. else {
  546. R=X291is_a(_t1,_t2);
  547. }
  548. /*FI*/}
  549. /*FI*/return R;
  550. }
  551. T0* r963look_up_for(T963* C,T0* a1,T0* a2){
  552. T0* R=NULL;
  553. R=r605look_up_for(((T605*)(r963base_class(C))),a1,a2);
  554. return R;
  555. }
  556. int r963jvm_convert_to(T0* a1){
  557. int R=0;
  558. /*IF*/if (X291is_expanded(a1)) {
  559. R=/*(IRF4.1jvm_to_expanded*/0/*)*/;
  560. }
  561. else {
  562. R=1;
  563. }
  564. /*FI*/return R;
  565. }
  566. /*No:TYPE_BIT_REF.expanded_initializer*/
  567. /*No:TYPE_BIT_REF.fz_jvm_root*/
  568. /*No:TYPE_BIT_REF.jvm_if_x_ne*/
  569. /*No:TYPE_BIT_REF.fz_dot*/
  570. /*No:TYPE_BIT_REF.is_generic*/
  571. /*No:TYPE_BIT_REF.jvm_write_local*/
  572. /*No:TYPE_BIT_REF.jvm_initialize_local*/
  573. /*No:TYPE_BIT_REF.used_as_reference*/
  574. /*No:TYPE_BIT_REF.us_bit_n_ref*/
  575. /*No:TYPE_BIT_REF.type_bit*/
  576. /*No:TYPE_BIT_REF.is_reference*/
  577. T0* r963base_class(T963* C){
  578. T0* R=NULL;
  579. T0* _bcn=NULL;
  580. _bcn=r963base_class_name();
  581. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  582. R=r451base_class(((T451*)_bcn));
  583. }
  584. else {
  585. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  586. r7append(((T7*)(oBC683explanation)),b1);
  587. }/*]*/
  588. r683add_type((T0*)C,((T0*)ms67_470));
  589. r683print_as_fatal_error(((T683*)(oBC364eh)));
  590. }
  591. /*FI*/return R;
  592. }
  593. /*No:TYPE_BIT_REF.jvm_xastore*/
  594. /*No:TYPE_BIT_REF.is_any*/
  595. /*No:TYPE_BIT_REF.jvm_method_flags*/
  596. int fBC963base_class_name=0;
  597. T0*oBC963base_class_name=NULL;
  598. T0* r963base_class_name(void){
  599. if (fBC963base_class_name==0){
  600. T0* R=NULL;
  601. fBC963base_class_name=1;
  602. {T451*n=malloc(sizeof(*n));
  603. *n=M451;
  604. r451make(n,((T0*)ms5_473),NULL);
  605. R=(T0*)n;
  606. }
  607. oBC963base_class_name=R;}
  608. return oBC963base_class_name;}
  609. /*No:TYPE_BIT_REF.jvm_push_local*/
  610. /*No:TYPE_BIT_REF.is_expanded*/
  611. /*No:TYPE_BIT_REF.is_basic_eiffel_expanded*/
  612. /*No:TYPE_BIT_REF.is_none*/
  613. /*No:TYPE_BIT_REF.is_integer*/
  614. /*No:TYPE_BOOLEAN.id*/
  615. /*No:TYPE_BOOLEAN.jvm_target_descriptor_in*/
  616. /*No:TYPE_BOOLEAN.jvm_if_x_eq*/
  617. int r707has_creation(T707* C,T0* a1){
  618. int R=0;
  619. r683add_position(X776start_position(a1));
  620. r707error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T707*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  621. return R;
  622. }
  623. /*No:TYPE_BOOLEAN.is_anchored*/
  624. /*No:TYPE_BOOLEAN.is_array*/
  625. int r707is_a(T707* C,T0* a1){
  626. int R=0;
  627. /*IF*/if (X291is_boolean(a1)) {
  628. R=1;
  629. }
  630. else {
  631. R=r605is_subclass_of(((T605*)(r707base_class(C))),X291base_class(a1));
  632. /*IF*/if (R) {
  633. r707used_as_reference();
  634. }
  635. /*FI*/}
  636. /*FI*//*IF*/if (!(R)) {
  637. r683add_type((T0*)C,((T0*)ms71_470));
  638. r683add_type(a1,((T0*)ms67_470));
  639. }
  640. /*FI*/return R;
  641. }
  642. /*No:TYPE_BOOLEAN.jvm_to_reference*/
  643. /*No:TYPE_BOOLEAN.run_type*/
  644. /*No:TYPE_BOOLEAN.is_pointer*/
  645. /*No:TYPE_BOOLEAN.is_dummy_expanded*/
  646. int r707jvm_push_default(void){
  647. int R=0;
  648. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  649. /*]*/
  650. R=1;
  651. return R;
  652. }
  653. /*No:TYPE_BOOLEAN.is_string*/
  654. /*No:TYPE_BOOLEAN.is_like_feature*/
  655. /*No:TYPE_BOOLEAN.is_like_current*/
  656. void r707make(T707* C,T0* a1){
  657. {T451*n=malloc(sizeof(*n));
  658. *n=M451;
  659. r451make(n,((T0*)ms6_473),a1);
  660. C->_base_class_name=(T0*)n;
  661. }
  662. }
  663. /*No:TYPE_BOOLEAN.nb_errors*/
  664. /*No:TYPE_BOOLEAN.us_item*/
  665. void r707load_ref(T0* a1){
  666. T0* _rf=NULL;
  667. T0* _rc=NULL;
  668. T0* _cn=NULL;
  669. {T451*n=malloc(sizeof(*n));
  670. *n=M451;
  671. r451make(n,a1,NULL);
  672. _cn=(T0*)n;
  673. }
  674. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  675. r355set_at_run_time(((T355*)_rc));
  676. _rf=r355get_feature_with(((T355*)_rc),((T0*)ms86_473));
  677. }
  678. /*No:TYPE_BOOLEAN.jvm_return_code*/
  679. int fBC707check_type=0;
  680. void r707check_type(T707* C){
  681. if (fBC707check_type==0){
  682. T0* _rc=NULL;
  683. T0* _bc=NULL;
  684. fBC707check_type=1;
  685. _bc=r707base_class(C);
  686. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  687. _rc=r707run_class(C);
  688. }
  689. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  690. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  691. r707error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T707*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_707));
  692. }
  693. /*FI*/}
  694. /*FI*/}}
  695. /*No:TYPE_BOOLEAN.jvm_xnewarray*/
  696. /*No:TYPE_BOOLEAN.jvm_descriptor_in*/
  697. /*No:TYPE_BOOLEAN.start_position*/
  698. /*No:TYPE_BOOLEAN.fz_inako*/
  699. /*No:TYPE_BOOLEAN.is_user_expanded*/
  700. /*No:TYPE_BOOLEAN.is_character*/
  701. T0* r707written_mark(void){
  702. T0* R=NULL;
  703. R=((T0*)ms6_473);
  704. return R;
  705. }
  706. /*No:TYPE_BOOLEAN.is_run_type*/
  707. T0* r707to_runnable(T707* C,T0* a1){
  708. T0* R=NULL;
  709. R=(T0*)C;
  710. r707check_type(C);
  711. return R;
  712. }
  713. /*No:TYPE_BOOLEAN.is_formal_generic*/
  714. T0* r707generic_list(T707* C){
  715. T0* R=NULL;
  716. r707fatal_error_generic_list(C);
  717. return R;
  718. }
  719. /*No:TYPE_BOOLEAN.is_real*/
  720. /*No:TYPE_BOOLEAN.is_bit*/
  721. void r707fatal_error_generic_list(T707* C){
  722. r683add_type((T0*)C,((T0*)ms12_291));
  723. r683print_as_fatal_error(((T683*)(oBC364eh)));
  724. }
  725. int fBC364type_boolean_ref=0;
  726. T0*oBC364type_boolean_ref=NULL;
  727. T0* r707type_boolean_ref(void){
  728. if (fBC364type_boolean_ref==0){
  729. T0* R=NULL;
  730. T0* _boolean_ref=NULL;
  731. fBC364type_boolean_ref=1;
  732. {T451*n=malloc(sizeof(*n));
  733. *n=M451;
  734. r451make(n,((T0*)ms7_473),NULL);
  735. _boolean_ref=(T0*)n;
  736. }
  737. {T657*n=malloc(sizeof(*n));
  738. *n=M657;
  739. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_boolean_ref);
  740. /*]*/
  741. R=(T0*)n;
  742. }
  743. oBC364type_boolean_ref=R;}
  744. return oBC364type_boolean_ref;}
  745. /*No:TYPE_BOOLEAN.jvm_check_class_invariant*/
  746. /*No:TYPE_BOOLEAN.jvm_xaload*/
  747. T0* r707smallest_ancestor(T707* C,T0* a1){
  748. T0* R=NULL;
  749. T0* _rto=NULL;
  750. _rto=X291run_type(a1);
  751. /*IF*/if (X291is_boolean(_rto)) {
  752. R=(T0*)C;
  753. }
  754. else {
  755. R=r657smallest_ancestor(((T657*)(r707type_boolean_ref())),_rto);
  756. }
  757. /*FI*/return R;
  758. }
  759. /*No:TYPE_BOOLEAN.is_boolean*/
  760. /*No:TYPE_BOOLEAN.is_double*/
  761. /*No:TYPE_BOOLEAN.fz_73*/
  762. int r707jvm_stack_space(void){
  763. int R=0;
  764. /*IF*//*AF*//*AE*/
  765. R=1;
  766. /*FI*/return R;
  767. }
  768. T0* r707run_class(T707* C){
  769. T0* R=NULL;
  770. R=r604run_class((T0*)C);
  771. return R;
  772. }
  773. T0* r707run_time_mark(void){
  774. T0* R=NULL;
  775. R=((T0*)ms6_473);
  776. return R;
  777. }
  778. int r707is_a_in(T707* C,T0* a1,T0* a2){
  779. int R=0;
  780. T0* _ct=NULL;
  781. T0* _t2=NULL;
  782. T0* _t1=NULL;
  783. /*IF*/if ((r707written_mark())==((void*)(X291written_mark(a1)))) {
  784. R=1;
  785. }
  786. else {
  787. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  788. _t1=r707to_runnable(C,_ct);
  789. _t2=X291to_runnable(a1,_ct);
  790. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  791. R=1;
  792. }
  793. else {
  794. R=X291is_a(_t1,_t2);
  795. }
  796. /*FI*/}
  797. /*FI*/return R;
  798. }
  799. T0* r707look_up_for(T707* C,T0* a1,T0* a2){
  800. T0* R=NULL;
  801. R=r605look_up_for(((T605*)(r707base_class(C))),a1,a2);
  802. return R;
  803. }
  804. int r707jvm_convert_to(T0* a1){
  805. int R=0;
  806. /*IF*/if (X291is_reference(a1)) {
  807. /*[IRF3.2jvm_to_reference*/{T0* _ca=NULL;
  808. int _idx=0;
  809. T0* _rc=NULL;
  810. _ca=oBC364code_attribute;
  811. _rc=r657run_class(((T657*)(r707type_boolean_ref())));
  812. _idx=r355fully_qualified_constant_pool_index(((T355*)_rc));
  813. r256opcode_new(((T256*)_ca),_idx);
  814. /*[IRF3.4opcode_dup_x1*/r256opcode(((T256*)_ca),90,1);
  815. /*]*/
  816. /*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0);
  817. /*]*/
  818. _idx=r95idx_fieldref4(((T95*)(oBC364constant_pool)),_idx,((T0*)ms86_473),((T0*)ms199_470));
  819. r256opcode_putfield(((T256*)_ca),_idx,-(2));
  820. }/*]*/
  821. }
  822. /*FI*/R=1;
  823. return R;
  824. }
  825. /*No:TYPE_BOOLEAN.us_boolean*/
  826. /*No:TYPE_BOOLEAN.expanded_initializer*/
  827. /*No:TYPE_BOOLEAN.jvm_if_x_ne*/
  828. /*No:TYPE_BOOLEAN.fz_dot*/
  829. /*No:TYPE_BOOLEAN.is_generic*/
  830. /*No:TYPE_BOOLEAN.jvm_write_local*/
  831. void r707jvm_initialize_local(int a1){
  832. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  833. /*]*/
  834. /*[IRF3.6jvm_write_local*/{int b1=a1;
  835. r256opcode_istore(((T256*)(oBC364code_attribute)),b1);
  836. }/*]*/
  837. }
  838. int fBC707used_as_reference=0;
  839. void r707used_as_reference(void){
  840. if (fBC707used_as_reference==0){
  841. fBC707used_as_reference=1;
  842. r707load_ref(((T0*)ms7_473));
  843. }}
  844. /*No:TYPE_BOOLEAN.is_reference*/
  845. void r707error(T0* a1,T0* a2){
  846. r683add_position(a1);
  847. r683error(((T683*)(oBC364eh)),a2);
  848. }
  849. T0* r707base_class(T707* C){
  850. T0* R=NULL;
  851. T0* _bcn=NULL;
  852. _bcn=(((T707*)C))->_base_class_name/*4*/;
  853. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  854. R=r451base_class(((T451*)_bcn));
  855. }
  856. else {
  857. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  858. r7append(((T7*)(oBC683explanation)),b1);
  859. }/*]*/
  860. r683add_type((T0*)C,((T0*)ms67_470));
  861. r683print_as_fatal_error(((T683*)(oBC364eh)));
  862. }
  863. /*FI*/return R;
  864. }
  865. /*No:TYPE_BOOLEAN.jvm_xastore*/
  866. /*No:TYPE_BOOLEAN.is_any*/
  867. /*No:TYPE_BOOLEAN.jvm_method_flags*/
  868. /*No:TYPE_BOOLEAN.us_boolean_ref*/
  869. /*No:TYPE_BOOLEAN.base_class_name*/
  870. /*No:TYPE_BOOLEAN.jvm_push_local*/
  871. /*No:TYPE_BOOLEAN.is_expanded*/
  872. /*No:TYPE_BOOLEAN.is_basic_eiffel_expanded*/
  873. /*No:TYPE_BOOLEAN.is_none*/
  874. /*No:TYPE_BOOLEAN.is_integer*/
  875. /*No:COUNTER.value*/
  876. void r417increment(T417* C){
  877. C->_value=((((T417*)C))->_value/*0*/)+(1);
  878. }
  879. /*No:IFTHENLIST.static_false*/
  880. /*No:IFTHENLIST.make*/
  881. /*No:IFTHENLIST.nb_errors*/
  882. /*No:IFTHENLIST.static_true*/
  883. T0* r712to_runnable(T712* C,T0* a1){
  884. T0* R=NULL;
  885. int _i=0;
  886. /*IF*/if (((((T712*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  887. {T712*n=malloc(sizeof(*n));
  888. *n=M712;
  889. /*[IRF3.3make*/((((T712*)(n)))->_list)=(r948twin(((T948*)((((T712*)C))->_list/*0*/))));
  890. /*]*/
  891. R=(T0*)n;
  892. }
  893. R=r712to_runnable(((T712*)R),a1);
  894. }
  895. else {
  896. C->_run_compound=a1;
  897. _i=1;
  898. while (!(((_i)>((((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  899. /*[IRF3.6put*/{T948* C1=((T948*)((((T712*)C))->_list/*0*/));
  900. T0* b1=r809to_runnable(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))),a1);
  901. int b2=_i;
  902. ((((T948*)C1))->_storage/*0*/)[(b2)-((((T948*)C1))->_lower/*12*/)]=(b1);
  903. }/*]*/
  904. _i=(_i)+(1);
  905. }
  906. R=(T0*)C;
  907. }
  908. /*FI*/return R;
  909. }
  910. /*No:IFTHENLIST.list*/
  911. /*No:IFTHENLIST.run_compound*/
  912. /*No:IFTHENLIST.non_static*/
  913. int r712compile_to_jvm(T712* C){
  914. int R=0;
  915. int _i=0;
  916. R=r809compile_to_jvm(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),1))));
  917. _i=2;
  918. while (!(((R)==(1019))||((_i)>((((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/)))) {
  919. {int z1=r809compile_to_jvm(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))));
  920.  
  921. if((1019==z1)){
  922. R=1019;
  923. }
  924.  else 
  925. if((1020==z1)){
  926. /*IF*/if ((R)==(1020)) {
  927. }
  928. else {
  929. R=1021;
  930. }
  931. /*FI*/}
  932.  else{R=1021;
  933. }}
  934. _i=(_i)+(1);
  935. }
  936. return R;
  937. }
  938. int r712use_current(T712* C){
  939. int R=0;
  940. int _i=0;
  941. _i=1;
  942. while (!(((_i)>((((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/))||(R))) {
  943. R=r809use_current(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))));
  944. _i=(_i)+(1);
  945. }
  946. return R;
  947. }
  948. /*No:IFTHENLIST.add_last*/
  949. void r712compile_to_jvm_resolve_branch(T712* C){
  950. int _static=0;
  951. int _i=0;
  952. _i=1;
  953. _static=1021;
  954. while (!(((_static)==(1019))||((_i)>((((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/)))) {
  955. _static=r809compile_to_jvm_resolve_branch(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))));
  956. _i=(_i)+(1);
  957. }
  958. }
  959. void r712afd_check(T712* C){
  960. int _i=0;
  961. _i=(((T948*)((T948*)((((T712*)C))->_list/*0*/))))->_upper/*8*/;
  962. while (!((_i)==(0))) {
  963. r809afd_check(((T809*)(r948item(((T948*)((((T712*)C))->_list/*0*/)),_i))));
  964. _i=(_i)-(1);
  965. }
  966. }
  967. /*No:CALL_INFIX_XOR.arguments*/
  968. T0* r760add_comment(T760* C,T0* a1){
  969. T0* R=NULL;
  970. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  971. R=(T0*)C;
  972. }
  973. else {
  974. {T529*n=malloc(sizeof(*n));
  975. *n=M529;
  976. r529make(n,(T0*)C,a1);
  977. R=(T0*)n;
  978. }
  979. }
  980. /*FI*/return R;
  981. }
  982. int r760to_integer(T760* C){
  983. int R=0;
  984. r760error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T760*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  985. return R;
  986. }
  987. int r760is_a(T760* C,T0* a1){
  988. int R=0;
  989. R=X291is_a(X291run_type((((T760*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  990. /*IF*/if (!(R)) {
  991. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T760*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  992. r760error(X662start_position(a1),((T0*)ms4_662));
  993. }
  994. /*FI*/return R;
  995. }
  996. /*No:CALL_INFIX_XOR.is_current*/
  997. /*No:CALL_INFIX_XOR.jvm_branch_if_false*/
  998. /*No:CALL_INFIX_XOR.static_value*/
  999. void r760make(T760* C,T0* a1,T0* a2,T0* a3){
  1000. T0* _eal=NULL;
  1001. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  1002. r683add_position(a2);
  1003. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  1004. r683fatal_error(((T683*)(oBC364eh)),b1);
  1005. }/*]*/
  1006. }
  1007. /*FI*/{T454*n=malloc(sizeof(*n));
  1008. *n=M454;
  1009. r454make(n,r760operator(),a2);
  1010. C->_feature_name=(T0*)n;
  1011. }
  1012. {T431*n=malloc(sizeof(*n));
  1013. *n=M431;
  1014. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1015. /*]*/
  1016. _eal=(T0*)n;
  1017. }
  1018. r760make_call_1(C,a1,(((T760*)C))->_feature_name/*28*/,_eal);
  1019. }
  1020. /*No:CALL_INFIX_XOR.nb_errors*/
  1021. /*No:CALL_INFIX_XOR.feature_name*/
  1022. /*No:CALL_INFIX_XOR.compile_to_jvm_assignment*/
  1023. /*No:CALL_INFIX_XOR.fz_iinaiv*/
  1024. /*No:CALL_INFIX_XOR.arg_count*/
  1025. /*No:CALL_INFIX_XOR.jvm_branch_if_true*/
  1026. /*No:CALL_INFIX_XOR.run_feature*/
  1027. /*No:CALL_INFIX_XOR.start_position*/
  1028. void r760compile_to_jvm_old(T760* C){
  1029. X662compile_to_jvm_old((((T760*)C))->_target/*12*/);
  1030. /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T760*)C))->_arguments/*24*/)));
  1031. }
  1032. /*FI*/}
  1033. /*No:CALL_INFIX_XOR.target*/
  1034. T0* r760to_runnable(T760* C,T0* a1){
  1035. T0* R=NULL;
  1036. T0* _tla=NULL;
  1037. T0* _a=NULL;
  1038. /*IF*/if (((((T760*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1039. r760to_runnable_0(C,a1);
  1040. _a=r431to_runnable(((T431*)((((T760*)C))->_arguments/*24*/)),a1);
  1041. /*IF*/if ((_a)==((void*)(NULL))) {
  1042. r760error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470));
  1043. }
  1044. else {
  1045. C->_arguments=_a;
  1046. }
  1047. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1048. r431match_with(((T431*)((((T760*)C))->_arguments/*24*/)),(((T760*)C))->_run_feature/*16*/);
  1049. }
  1050. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1051. _tla=(((T760*)C))->_result_type/*20*/;
  1052. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1053. case 239: 
  1054. break;
  1055. default:
  1056. _tla=NULL;
  1057. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1058. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*24*/)))/*)*/));
  1059. }
  1060. /*FI*/}
  1061. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1062. R=(T0*)C;
  1063. }
  1064. /*FI*/}
  1065. else {
  1066. R=r760twin(C);
  1067. /*[IRF3.3set_current_type*/((((T760*)(((T760*)R))))->_current_type)=(NULL);
  1068. /*]*/
  1069. R=r760to_runnable(((T760*)R),a1);
  1070. }
  1071. /*FI*/return R;
  1072. }
  1073. /*No:CALL_INFIX_XOR.result_type*/
  1074. /*No:CALL_INFIX_XOR.is_result*/
  1075. T0* r760twin(T760* C){
  1076. T0* R=NULL;
  1077. R=malloc(sizeof(*C));
  1078. *((T760*)R)=*C;
  1079. return R;
  1080. }
  1081. /*No:CALL_INFIX_XOR.set_current_type*/
  1082. T0* r760operator(void){
  1083. T0* R=NULL;
  1084. R=((T0*)ms50_473);
  1085. return R;
  1086. }
  1087. int r760is_static(T760* C){
  1088. int R=0;
  1089. /*IF*/if (X291is_boolean(X662result_type((((T760*)C))->_target/*12*/))) {
  1090. /*IF*/if ((X662is_static((((T760*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*24*/)))/*)*/))) {
  1091. R=1;
  1092. C->_static_value_mem=(X662static_value((((T760*)C))->_target/*12*/))+(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T760*)C))->_arguments/*24*/)))/*)*/));
  1093. /*IF*/if (((((T760*)C))->_static_value_mem/*4*/)==(1)) {
  1094. C->_static_value_mem=1;
  1095. }
  1096. else {
  1097. C->_static_value_mem=0;
  1098. }
  1099. /*FI*/}
  1100. /*FI*/}
  1101. /*FI*/return R;
  1102. }
  1103. void r760standard_compile_target_to_jvm(T760* C){
  1104. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T760* C1=C;
  1105. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1106. }/*]*/
  1107. /*]*/
  1108. X291jvm_check_class_invariant((((T760*)C))->_result_type/*20*/);
  1109. }
  1110. int r760compile_to_jvm_into(T760* C,T0* a1){
  1111. int R=0;
  1112. R=r760standard_compile_to_jvm_into(C,a1);
  1113. return R;
  1114. }
  1115. /*No:CALL_INFIX_XOR.compile_target_to_jvm*/
  1116. /*No:CALL_INFIX_XOR.fz_07*/
  1117. /*No:CALL_INFIX_XOR.can_be_dropped*/
  1118. /*No:CALL_INFIX_XOR.current_type*/
  1119. /*No:CALL_INFIX_XOR.jvm_assign*/
  1120. /*No:CALL_INFIX_XOR.static_value_mem*/
  1121. void r760make_call_1(T760* C,T0* a1,T0* a2,T0* a3){
  1122. C->_target=a1;
  1123. C->_feature_name=a2;
  1124. C->_arguments=a3;
  1125. }
  1126. /*No:CALL_INFIX_XOR.is_manifest_string*/
  1127. /*No:CALL_INFIX_XOR.is_void*/
  1128. /*No:CALL_INFIX_XOR.us_xor*/
  1129. int r760jvm_standard_branch_if_false(T760* C){
  1130. int R=0;
  1131. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T760* C1=C;
  1132. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1133. }/*]*/
  1134. /*]*/
  1135. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  1136. return R;
  1137. }
  1138. /*No:CALL_INFIX_XOR.compile_to_jvm*/
  1139. void r760to_runnable_0(T760* C,T0* a1){
  1140. C->_current_type=a1;
  1141. r760cpc_to_runnable(C,a1);
  1142. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T760*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  1143. /*IF*/if (((((T760*)C))->_result_type/*20*/)==((void*)(NULL))) {
  1144. r683add_position(X496start_position((((T760*)C))->_run_feature/*16*/));
  1145. r760error((((T454*)((T454*)((((T760*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  1146. }
  1147.  else if (X291is_like_current((((T760*)C))->_result_type/*20*/)) {
  1148. C->_result_type=X662result_type((((T760*)C))->_target/*12*/);
  1149. }
  1150. /*FI*/}
  1151. /*No:CALL_INFIX_XOR.is_pre_computable*/
  1152. int r760jvm_standard_branch_if_true(T760* C){
  1153. int R=0;
  1154. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T760* C1=C;
  1155. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1156. }/*]*/
  1157. /*]*/
  1158. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  1159. return R;
  1160. }
  1161. int r760use_current(T760* C){
  1162. int R=0;
  1163. /*IF*/{/*AT*/R=r431use_current(((T431*)((((T760*)C))->_arguments/*24*/)));
  1164. }
  1165. /*FI*//*IF*/if (R) {
  1166. }
  1167.  else if (X662is_current((((T760*)C))->_target/*12*/)) {
  1168. R=X496use_current((((T760*)C))->_run_feature/*16*/);
  1169. }
  1170. else {
  1171. R=X662use_current((((T760*)C))->_target/*12*/);
  1172. }
  1173. /*FI*/return R;
  1174. }
  1175. void r760cpc_to_runnable(T760* C,T0* a1){
  1176. T0* _rc=NULL;
  1177. T0* _t=NULL;
  1178. _t=X662to_runnable((((T760*)C))->_target/*12*/,a1);
  1179. /*IF*/if ((_t)==((void*)(NULL))) {
  1180. r683add_position(X662start_position((((T760*)C))->_target/*12*/));
  1181. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1182. r683fatal_error(((T683*)(oBC364eh)),b1);
  1183. }/*]*/
  1184. }
  1185. /*FI*/C->_target=_t;
  1186. _rc=X291run_class(X662result_type((((T760*)C))->_target/*12*/));
  1187. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1188. r576update((((T760*)C))->_target/*12*/,(((T760*)C))->_run_feature/*16*/);
  1189. }
  1190. void r760error(T0* a1,T0* a2){
  1191. r683add_position(a1);
  1192. r683error(((T683*)(oBC364eh)),a2);
  1193. }
  1194. /*No:CALL_INFIX_XOR.isa_dca_inline_argument*/
  1195. /*No:CALL_INFIX_XOR.fatal_error*/
  1196. /*No:CALL_INFIX_XOR.fz_bad_argument*/
  1197. /*No:CALL_INFIX_XOR.arg1*/
  1198. int r760standard_compile_to_jvm_into(T760* C,T0* a1){
  1199. int R=0;
  1200. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T760* C1=C;
  1201. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1202. }/*]*/
  1203. /*]*/
  1204. R=X291jvm_convert_to(X291run_type((((T760*)C))->_result_type/*20*/),a1);
  1205. return R;
  1206. }
  1207. /*No:CALL_INFIX_XOR.call_proc_call_c2jvm*/
  1208. void r760afd_check(T760* C){
  1209. T0* _running=NULL;
  1210. T0* _rc=NULL;
  1211. _rc=X291run_class(X662result_type((((T760*)C))->_target/*12*/));
  1212. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1213. /*IF*/if ((_running)==((void*)(NULL))) {
  1214. r683add_position(X662start_position((((T760*)C))->_target/*12*/));
  1215. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1216. r7append(((T7*)(oBC683explanation)),b1);
  1217. }/*]*/
  1218. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1219. r7append(((T7*)(oBC683explanation)),b1);
  1220. }/*]*/
  1221. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1222. r7append(((T7*)(oBC683explanation)),b1);
  1223. }/*]*/
  1224. r683print_as_warning(((T683*)(oBC364eh)));
  1225. r355set_at_run_time(((T355*)_rc));
  1226. }
  1227.  else if ((r396count(((T396*)_running)))>(0)) {
  1228. r576update((((T760*)C))->_target/*12*/,(((T760*)C))->_run_feature/*16*/);
  1229. }
  1230. /*FI*/X662afd_check((((T760*)C))->_target/*12*/);
  1231. /*IF*/{/*AT*/r431afd_check(((T431*)((((T760*)C))->_arguments/*24*/)));
  1232. }
  1233. /*FI*/}
  1234. int r669id(T669* C){
  1235. int R=0;
  1236. R=(((T605*)((T605*)(r669base_class(C)))))->_id/*0*/;
  1237. return R;
  1238. }
  1239. /*No:TYPE_ANY.jvm_target_descriptor_in*/
  1240. /*No:TYPE_ANY.jvm_if_x_eq*/
  1241. int r669has_creation(T669* C,T0* a1){
  1242. int R=0;
  1243. r683add_position(X776start_position(a1));
  1244. r669error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T669*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_669));
  1245. return R;
  1246. }
  1247. /*No:TYPE_ANY.is_anchored*/
  1248. /*No:TYPE_ANY.is_array*/
  1249. int r669is_a(T669* C,T0* a1){
  1250. int R=0;
  1251. /*IF*/if (X291is_any(a1)) {
  1252. R=1;
  1253. }
  1254. else {
  1255. R=r605is_subclass_of(((T605*)(r669base_class(C))),X291base_class(a1));
  1256. }
  1257. /*FI*//*IF*/if (!(R)) {
  1258. r683add_type((T0*)C,((T0*)ms71_470));
  1259. r683add_type(a1,((T0*)ms67_470));
  1260. }
  1261. /*FI*/return R;
  1262. }
  1263. /*No:TYPE_ANY.jvm_to_reference*/
  1264. /*No:TYPE_ANY.run_type*/
  1265. /*No:TYPE_ANY.is_pointer*/
  1266. /*No:TYPE_ANY.is_dummy_expanded*/
  1267. int r669jvm_push_default(void){
  1268. int R=0;
  1269. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  1270. /*]*/
  1271. R=1;
  1272. return R;
  1273. }
  1274. /*No:TYPE_ANY.is_string*/
  1275. /*No:TYPE_ANY.is_like_feature*/
  1276. /*No:TYPE_ANY.is_like_current*/
  1277. void r669make(T669* C,T0* a1){
  1278. {T451*n=malloc(sizeof(*n));
  1279. *n=M451;
  1280. r451make(n,((T0*)ms1_473),a1);
  1281. C->_base_class_name=(T0*)n;
  1282. }
  1283. }
  1284. T0* r669jvm_root_class(void){
  1285. if (fBC364jvm_root_class==0){
  1286. T0* R=NULL;
  1287. fBC364jvm_root_class=1;
  1288. {T7*n=malloc(sizeof(*n));
  1289. *n=M7;
  1290. r7make(n,12);
  1291. R=(T0*)n;
  1292. }
  1293. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  1294. r7extend(((T7*)R),'\57');
  1295. r7append(((T7*)R),((T0*)ms112_470));
  1296. oBC364jvm_root_class=R;}
  1297. return oBC364jvm_root_class;}
  1298. /*No:TYPE_ANY.nb_errors*/
  1299. /*No:TYPE_ANY.jvm_return_code*/
  1300. int fBC669check_type=0;
  1301. void r669check_type(T669* C){
  1302. if (fBC669check_type==0){
  1303. T0* _rc=NULL;
  1304. T0* _bc=NULL;
  1305. fBC669check_type=1;
  1306. _bc=r669base_class(C);
  1307. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1308. _rc=r669run_class(C);
  1309. }
  1310. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1311. /*IF*/if ((((T605*)((T605*)_bc)))->_is_expanded/*20*/) {
  1312. r669error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T669*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms2_669));
  1313. }
  1314. /*FI*/}
  1315. /*FI*/}}
  1316. /*No:TYPE_ANY.jvm_xnewarray*/
  1317. /*No:TYPE_ANY.jvm_descriptor_in*/
  1318. /*No:TYPE_ANY.start_position*/
  1319. /*No:TYPE_ANY.fz_inako*/
  1320. /*No:TYPE_ANY.is_user_expanded*/
  1321. /*No:TYPE_ANY.is_character*/
  1322. T0* r669written_mark(void){
  1323. T0* R=NULL;
  1324. R=((T0*)ms1_473);
  1325. return R;
  1326. }
  1327. /*No:TYPE_ANY.is_run_type*/
  1328. T0* r669to_runnable(T669* C,T0* a1){
  1329. T0* R=NULL;
  1330. R=(T0*)C;
  1331. r669check_type(C);
  1332. return R;
  1333. }
  1334. /*No:TYPE_ANY.is_formal_generic*/
  1335. T0* r669generic_list(T669* C){
  1336. T0* R=NULL;
  1337. r669fatal_error_generic_list(C);
  1338. return R;
  1339. }
  1340. /*No:TYPE_ANY.is_real*/
  1341. /*No:TYPE_ANY.is_bit*/
  1342. void r669fatal_error_generic_list(T669* C){
  1343. r683add_type((T0*)C,((T0*)ms12_291));
  1344. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1345. }
  1346. /*No:TYPE_ANY.jvm_check_class_invariant*/
  1347. T0* r669jvm_root_descriptor(void){
  1348. if (fBC364jvm_root_descriptor==0){
  1349. T0* R=NULL;
  1350. fBC364jvm_root_descriptor=1;
  1351. {T7*n=malloc(sizeof(*n));
  1352. *n=M7;
  1353. r7make(n,12);
  1354. R=(T0*)n;
  1355. }
  1356. r7extend(((T7*)R),'L');
  1357. r7append(((T7*)R),r669jvm_root_class());
  1358. r7extend(((T7*)R),'\73');
  1359. oBC364jvm_root_descriptor=R;}
  1360. return oBC364jvm_root_descriptor;}
  1361. /*No:TYPE_ANY.jvm_xaload*/
  1362. /*No:TYPE_ANY.smallest_ancestor*/
  1363. /*No:TYPE_ANY.is_boolean*/
  1364. /*No:TYPE_ANY.is_double*/
  1365. int r669jvm_stack_space(void){
  1366. int R=0;
  1367. /*IF*//*AF*//*AE*/
  1368. R=1;
  1369. /*FI*/return R;
  1370. }
  1371. T0* r669run_class(T669* C){
  1372. T0* R=NULL;
  1373. R=r604run_class((T0*)C);
  1374. return R;
  1375. }
  1376. T0* r669run_time_mark(void){
  1377. T0* R=NULL;
  1378. R=((T0*)ms1_473);
  1379. return R;
  1380. }
  1381. int r669is_a_in(T669* C,T0* a1,T0* a2){
  1382. int R=0;
  1383. T0* _ct=NULL;
  1384. T0* _t2=NULL;
  1385. T0* _t1=NULL;
  1386. /*IF*/if ((r669written_mark())==((void*)(X291written_mark(a1)))) {
  1387. R=1;
  1388. }
  1389. else {
  1390. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  1391. _t1=r669to_runnable(C,_ct);
  1392. _t2=X291to_runnable(a1,_ct);
  1393. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1394. R=1;
  1395. }
  1396. else {
  1397. R=X291is_a(_t1,_t2);
  1398. }
  1399. /*FI*/}
  1400. /*FI*/return R;
  1401. }
  1402. T0* r669look_up_for(T669* C,T0* a1,T0* a2){
  1403. T0* R=NULL;
  1404. R=r605look_up_for(((T605*)(r669base_class(C))),a1,a2);
  1405. return R;
  1406. }
  1407. /*No:TYPE_ANY.jvm_convert_to*/
  1408. /*No:TYPE_ANY.expanded_initializer*/
  1409. /*No:TYPE_ANY.fz_jvm_root*/
  1410. /*No:TYPE_ANY.jvm_if_x_ne*/
  1411. /*No:TYPE_ANY.fz_dot*/
  1412. /*No:TYPE_ANY.is_generic*/
  1413. /*No:TYPE_ANY.jvm_write_local*/
  1414. void r669jvm_initialize_local(int a1){
  1415. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  1416. /*]*/
  1417. /*[IRF3.6jvm_write_local*/{int b1=a1;
  1418. r256opcode_astore(((T256*)(oBC364code_attribute)),b1);
  1419. }/*]*/
  1420. }
  1421. /*No:TYPE_ANY.used_as_reference*/
  1422. /*No:TYPE_ANY.is_reference*/
  1423. void r669error(T0* a1,T0* a2){
  1424. r683add_position(a1);
  1425. r683error(((T683*)(oBC364eh)),a2);
  1426. }
  1427. T0* r669base_class(T669* C){
  1428. T0* R=NULL;
  1429. T0* _bcn=NULL;
  1430. _bcn=(((T669*)C))->_base_class_name/*4*/;
  1431. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  1432. R=r451base_class(((T451*)_bcn));
  1433. }
  1434. else {
  1435. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  1436. r7append(((T7*)(oBC683explanation)),b1);
  1437. }/*]*/
  1438. r683add_type((T0*)C,((T0*)ms67_470));
  1439. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1440. }
  1441. /*FI*/return R;
  1442. }
  1443. /*No:TYPE_ANY.jvm_xastore*/
  1444. /*No:TYPE_ANY.is_any*/
  1445. /*No:TYPE_ANY.jvm_method_flags*/
  1446. /*No:TYPE_ANY.base_class_name*/
  1447. /*No:TYPE_ANY.jvm_push_local*/
  1448. /*No:TYPE_ANY.is_expanded*/
  1449. /*No:TYPE_ANY.is_basic_eiffel_expanded*/
  1450. /*No:TYPE_ANY.is_none*/
  1451. /*No:TYPE_ANY.is_integer*/
  1452. /*No:TYPE_ANY.us_any*/
  1453. /*No:CALL_N.arguments*/
  1454. T0* r915add_comment(T915* C,T0* a1){
  1455. T0* R=NULL;
  1456. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1457. R=(T0*)C;
  1458. }
  1459. else {
  1460. {T529*n=malloc(sizeof(*n));
  1461. *n=M529;
  1462. r529make(n,(T0*)C,a1);
  1463. R=(T0*)n;
  1464. }
  1465. }
  1466. /*FI*/return R;
  1467. }
  1468. int r915to_integer(T915* C){
  1469. int R=0;
  1470. r915error(r915start_position(C),((T0*)ms69_470));
  1471. return R;
  1472. }
  1473. int r915is_a(T915* C,T0* a1){
  1474. int R=0;
  1475. R=X291is_a(X291run_type((((T915*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
  1476. /*IF*/if (!(R)) {
  1477. r683add_position(r915start_position(C));
  1478. r915error(X662start_position(a1),((T0*)ms4_662));
  1479. }
  1480. /*FI*/return R;
  1481. }
  1482. /*No:CALL_N.fz_bad_arguments*/
  1483. /*No:CALL_N.is_current*/
  1484. /*No:CALL_N.jvm_branch_if_false*/
  1485. /*No:CALL_N.static_value*/
  1486. void r915make(T915* C,T0* a1,T0* a2,T0* a3){
  1487. C->_target=a1;
  1488. C->_feature_name=a2;
  1489. C->_arguments=a3;
  1490. }
  1491. /*No:CALL_N.nb_errors*/
  1492. /*No:CALL_N.feature_name*/
  1493. /*No:CALL_N.compile_to_jvm_assignment*/
  1494. /*No:CALL_N.fz_iinaiv*/
  1495. /*No:CALL_N.arg_count*/
  1496. /*No:CALL_N.jvm_branch_if_true*/
  1497. /*No:CALL_N.run_feature*/
  1498. T0* r915start_position(T915* C){
  1499. T0* R=NULL;
  1500. R=X776start_position((((T915*)C))->_feature_name/*16*/);
  1501. return R;
  1502. }
  1503. void r915compile_to_jvm_old(T915* C){
  1504. X662compile_to_jvm_old((((T915*)C))->_target/*12*/);
  1505. /*IF*/if ((/*(IRF4.6arg_count*/r431count(((T431*)((((T915*)C))->_arguments/*28*/)))/*)*/)>(0)) {
  1506. r431compile_to_jvm_old(((T431*)((((T915*)C))->_arguments/*28*/)));
  1507. }
  1508. /*FI*/}
  1509. /*No:CALL_N.target*/
  1510. T0* r915to_runnable(T915* C,T0* a1){
  1511. T0* R=NULL;
  1512. T0* _e=NULL;
  1513. T0* _tla=NULL;
  1514. T0* _a=NULL;
  1515. /*IF*/if (((((T915*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1516. r915to_runnable_0(C,a1);
  1517. _a=r431to_runnable(((T431*)((((T915*)C))->_arguments/*28*/)),a1);
  1518. /*IF*/if ((_a)==((void*)(NULL))) {
  1519. r915error(r431start_position(((T431*)((((T915*)C))->_arguments/*28*/))),((T0*)ms56_470));
  1520. }
  1521. else {
  1522. C->_arguments=_a;
  1523. }
  1524. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1525. r431match_with(((T431*)((((T915*)C))->_arguments/*28*/)),(((T915*)C))->_run_feature/*20*/);
  1526. }
  1527. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1528. _tla=(((T915*)C))->_result_type/*24*/;
  1529. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1530. case 239: 
  1531. break;
  1532. default:
  1533. _tla=NULL;
  1534. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1535. _e=r431expression(((T431*)((((T915*)C))->_arguments/*28*/)),/*(IRF4.6rank*/(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_rank/*20*//*)*/);
  1536. C->_result_type=X291run_type(X662result_type(_e));
  1537. }
  1538. /*FI*/}
  1539. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1540. R=(T0*)C;
  1541. }
  1542. /*FI*/}
  1543. else {
  1544. R=r915twin(C);
  1545. /*[IRF3.3set_current_type*/((((T915*)(((T915*)R))))->_current_type)=(NULL);
  1546. /*]*/
  1547. R=r915to_runnable(((T915*)R),a1);
  1548. }
  1549. /*FI*/return R;
  1550. }
  1551. /*No:CALL_N.result_type*/
  1552. /*No:CALL_N.is_result*/
  1553. T0* r915twin(T915* C){
  1554. T0* R=NULL;
  1555. R=malloc(sizeof(*C));
  1556. *((T915*)R)=*C;
  1557. return R;
  1558. }
  1559. /*No:CALL_N.set_current_type*/
  1560. /*No:CALL_N.is_static*/
  1561. void r915standard_compile_target_to_jvm(T915* C){
  1562. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T915* C1=C;
  1563. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1564. }/*]*/
  1565. /*]*/
  1566. X291jvm_check_class_invariant((((T915*)C))->_result_type/*24*/);
  1567. }
  1568. int r915compile_to_jvm_into(T915* C,T0* a1){
  1569. int R=0;
  1570. R=r915standard_compile_to_jvm_into(C,a1);
  1571. return R;
  1572. }
  1573. /*No:CALL_N.compile_target_to_jvm*/
  1574. int r915call_is_static(T915* C){
  1575. int R=0;
  1576. T0* _rf=NULL;
  1577. T0* _running=NULL;
  1578. T0* _rc=NULL;
  1579. /*IF*/if (((((T915*)C))->_run_feature/*20*/)!=((void*)(NULL))) {
  1580. _rc=X496run_class((((T915*)C))->_run_feature/*20*/);
  1581. /*IF*/if ((_rc)!=((void*)(NULL))) {
  1582. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1583. /*IF*/if (((_running)!=((void*)(NULL)))&&((r396count(((T396*)_running)))==(1))) {
  1584. _rf=r355dynamic(((T355*)(r396first(((T396*)_running)))),(((T915*)C))->_run_feature/*20*/);
  1585. /*IF*/if (X496is_static(_rf)) {
  1586. C->_static_value_mem=X496static_value_mem(_rf);
  1587. R=1;
  1588. }
  1589. /*FI*/}
  1590. /*FI*/}
  1591. /*FI*/}
  1592. /*FI*/return R;
  1593. }
  1594. /*No:CALL_N.fz_07*/
  1595. /*No:CALL_N.can_be_dropped*/
  1596. /*No:CALL_N.current_type*/
  1597. /*No:CALL_N.jvm_assign*/
  1598. /*No:CALL_N.static_value_mem*/
  1599. /*No:CALL_N.is_manifest_string*/
  1600. /*No:CALL_N.is_void*/
  1601. int r915jvm_standard_branch_if_false(T915* C){
  1602. int R=0;
  1603. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T915* C1=C;
  1604. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1605. }/*]*/
  1606. /*]*/
  1607. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  1608. return R;
  1609. }
  1610. /*No:CALL_N.compile_to_jvm*/
  1611. void r915to_runnable_0(T915* C,T0* a1){
  1612. C->_current_type=a1;
  1613. r915cpc_to_runnable(C,a1);
  1614. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T915*)C))->_run_feature/*20*/))))->_result_type/*24*/);
  1615. /*IF*/if (((((T915*)C))->_result_type/*24*/)==((void*)(NULL))) {
  1616. r683add_position(X496start_position((((T915*)C))->_run_feature/*20*/));
  1617. r915error(X776start_position((((T915*)C))->_feature_name/*16*/),((T0*)ms1_295));
  1618. }
  1619.  else if (X291is_like_current((((T915*)C))->_result_type/*24*/)) {
  1620. C->_result_type=X662result_type((((T915*)C))->_target/*12*/);
  1621. }
  1622. /*FI*/}
  1623. /*No:CALL_N.is_pre_computable*/
  1624. int r915jvm_standard_branch_if_true(T915* C){
  1625. int R=0;
  1626. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T915* C1=C;
  1627. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1628. }/*]*/
  1629. /*]*/
  1630. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  1631. return R;
  1632. }
  1633. int r915use_current(T915* C){
  1634. int R=0;
  1635. /*IF*/if ((/*(IRF4.6arg_count*/r431count(((T431*)((((T915*)C))->_arguments/*28*/)))/*)*/)>(0)) {
  1636. R=r431use_current(((T431*)((((T915*)C))->_arguments/*28*/)));
  1637. }
  1638. /*FI*//*IF*/if (R) {
  1639. }
  1640.  else if (X662is_current((((T915*)C))->_target/*12*/)) {
  1641. R=X496use_current((((T915*)C))->_run_feature/*20*/);
  1642. }
  1643. else {
  1644. R=X662use_current((((T915*)C))->_target/*12*/);
  1645. }
  1646. /*FI*/return R;
  1647. }
  1648. void r915cpc_to_runnable(T915* C,T0* a1){
  1649. T0* _rc=NULL;
  1650. T0* _t=NULL;
  1651. _t=X662to_runnable((((T915*)C))->_target/*12*/,a1);
  1652. /*IF*/if ((_t)==((void*)(NULL))) {
  1653. r683add_position(X662start_position((((T915*)C))->_target/*12*/));
  1654. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1655. r683fatal_error(((T683*)(oBC364eh)),b1);
  1656. }/*]*/
  1657. }
  1658. /*FI*/C->_target=_t;
  1659. _rc=X291run_class(X662result_type((((T915*)C))->_target/*12*/));
  1660. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1661. r576update((((T915*)C))->_target/*12*/,(((T915*)C))->_run_feature/*20*/);
  1662. }
  1663. void r915error(T0* a1,T0* a2){
  1664. r683add_position(a1);
  1665. r683error(((T683*)(oBC364eh)),a2);
  1666. }
  1667. /*No:CALL_N.isa_dca_inline_argument*/
  1668. /*No:CALL_N.fatal_error*/
  1669. int r915standard_compile_to_jvm_into(T915* C,T0* a1){
  1670. int R=0;
  1671. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T915* C1=C;
  1672. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1673. }/*]*/
  1674. /*]*/
  1675. R=X291jvm_convert_to(X291run_type((((T915*)C))->_result_type/*24*/),a1);
  1676. return R;
  1677. }
  1678. /*No:CALL_N.call_proc_call_c2jvm*/
  1679. void r915afd_check(T915* C){
  1680. T0* _running=NULL;
  1681. T0* _rc=NULL;
  1682. _rc=X291run_class(X662result_type((((T915*)C))->_target/*12*/));
  1683. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1684. /*IF*/if ((_running)==((void*)(NULL))) {
  1685. r683add_position(X662start_position((((T915*)C))->_target/*12*/));
  1686. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1687. r7append(((T7*)(oBC683explanation)),b1);
  1688. }/*]*/
  1689. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1690. r7append(((T7*)(oBC683explanation)),b1);
  1691. }/*]*/
  1692. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1693. r7append(((T7*)(oBC683explanation)),b1);
  1694. }/*]*/
  1695. r683print_as_warning(((T683*)(oBC364eh)));
  1696. r355set_at_run_time(((T355*)_rc));
  1697. }
  1698.  else if ((r396count(((T396*)_running)))>(0)) {
  1699. r576update((((T915*)C))->_target/*12*/,(((T915*)C))->_run_feature/*20*/);
  1700. }
  1701. /*FI*/X662afd_check((((T915*)C))->_target/*12*/);
  1702. /*IF*/if ((/*(IRF4.6arg_count*/r431count(((T431*)((((T915*)C))->_arguments/*28*/)))/*)*/)>(0)) {
  1703. r431afd_check(((T431*)((((T915*)C))->_arguments/*28*/)));
  1704. }
  1705. /*FI*/}
  1706. /*No:CALL_INFIX_FREEOP.arguments*/
  1707. T0* r534add_comment(T534* C,T0* a1){
  1708. T0* R=NULL;
  1709. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1710. R=(T0*)C;
  1711. }
  1712. else {
  1713. {T529*n=malloc(sizeof(*n));
  1714. *n=M529;
  1715. r529make(n,(T0*)C,a1);
  1716. R=(T0*)n;
  1717. }
  1718. }
  1719. /*FI*/return R;
  1720. }
  1721. int r534to_integer(T534* C){
  1722. int R=0;
  1723. r534error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T534*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1724. return R;
  1725. }
  1726. int r534is_a(T534* C,T0* a1){
  1727. int R=0;
  1728. R=X291is_a(X291run_type((((T534*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  1729. /*IF*/if (!(R)) {
  1730. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T534*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  1731. r534error(X662start_position(a1),((T0*)ms4_662));
  1732. }
  1733. /*FI*/return R;
  1734. }
  1735. /*No:CALL_INFIX_FREEOP.is_current*/
  1736. /*No:CALL_INFIX_FREEOP.jvm_branch_if_false*/
  1737. /*No:CALL_INFIX_FREEOP.static_value*/
  1738. void r534make(T534* C,T0* a1,T0* a2,T0* a3){
  1739. T0* _eal=NULL;
  1740. {T431*n=malloc(sizeof(*n));
  1741. *n=M431;
  1742. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1743. /*]*/
  1744. _eal=(T0*)n;
  1745. }
  1746. r534make_call_1(C,a1,a2,_eal);
  1747. }
  1748. /*No:CALL_INFIX_FREEOP.nb_errors*/
  1749. /*No:CALL_INFIX_FREEOP.feature_name*/
  1750. /*No:CALL_INFIX_FREEOP.compile_to_jvm_assignment*/
  1751. /*No:CALL_INFIX_FREEOP.fz_iinaiv*/
  1752. /*No:CALL_INFIX_FREEOP.arg_count*/
  1753. /*No:CALL_INFIX_FREEOP.jvm_branch_if_true*/
  1754. /*No:CALL_INFIX_FREEOP.run_feature*/
  1755. /*No:CALL_INFIX_FREEOP.start_position*/
  1756. void r534compile_to_jvm_old(T534* C){
  1757. X662compile_to_jvm_old((((T534*)C))->_target/*12*/);
  1758. /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T534*)C))->_arguments/*24*/)));
  1759. }
  1760. /*FI*/}
  1761. /*No:CALL_INFIX_FREEOP.target*/
  1762.  
  1763.